package com.cy.pj.common.bo;//business object

/**
 *  POJO(VO/BO/DTO/Do)中的BO对象
 *  1)所有的POJO对象属性和定义都用对象类型
 *  2)所有的POJO对象属性默认无需指定
 *  3)所有的POJO对象需要提供set/get/方法,对boolean提供isXX方法
 *  4)所有的POJO对象需要提供无参构造函数
 *  5)所有的POJO对象的构造方法不要写任何业务逻辑
 *  6)所有的POJO类必须写同toString方法
 * 此对象为业务层他向外输出的一个BO对象,用于封装业务执行的结果
 * 
 */

import java.io.Serializable;
import java.util.List;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor // 无参构造
public class PageObject<T> implements Serializable {

	/**
	 * 在类上定义的泛型用于约束类中属性,方法参数,方法返回值
	 */
	private static final long serialVersionUID = -6062177324904851774L;

	// 当前页的页码值
	private Integer pageCurrent=1;
	// 页面大小
	private Integer pageSize=5;
	// 总行数(通过查询获得)
	private Integer rowCount;
	// 当前页记录

	private List<T> records;
	// 总页数(通过计算获得)
	private int pageCount;

	public PageObject(Integer pageSize, Integer rowCount, List<T> records, Integer pageCurrent) {
		super();
		this.pageSize = pageSize;
		this.rowCount = rowCount;
		this.records = records;
        this.pageCurrent = pageCurrent;		
		// 计算分页:方案一
//		this.pageCount=rowCount/pageSize;
//		if(rowCount%pageSize!=0) {
//			this.pageCount++;

//		}
		// 方案二
		this.pageCount = (rowCount - 1) / pageSize + 1;
	}

}
